The networking module relies on an instance
system. mnStart creates uninitialized instances which each have a unique
ID ranging from 0 to one less than the maximum number of instances.
Each instance acts independently and
commands used on an instance will not directly impact on any other instance.
Instances can be one of three types.
To set the type use mnConnect (client state), mnStartServer (server
state) or mnStartBroadcast (broadcast state) which initialize the instance
in different ways.
Once initialized a number of different commands can be used on the instance; these have an instance parameter. Some commands are used similarly across multiple instance types (e.g. mnRecvUDP), whilst others are specific to the instance type (e.g. mnClientJoined).